#include "ui_uRockerWindow.h"
#include <q3listview.h>

class Graphique;
class SceneXmlParser;
class sngParser;
class ParamWidget;
class Collection;

//class configcontrol;
class ControlsConfig;

class ChartParser;


class uRockerWindow : public QMainWindow, private Ui::FreetarWindow

{
	Q_OBJECT

public:

	static uRockerWindow* getInstance();
	QString getCurrentSngPath();
	void saveSongAs(QString path);
	void loadSong(QString sngpath);
	void loadChart(QString chartPath);
	void setSongSliderPosition(int ms);
	//void updateSongTimeLabel(unsigned int songTimeMs);

	Graphique* _graphique;
	Collection *_collection;

public slots:
	void playSong();
	void openSong();
	void openChart();
	void increaseSpeed();
	void decreaseSpeed();
	void saveSng();
	void addToCollection();
	void showCollection();
	void twoPlayerMode();
	void configureControl();
	void pushNotes();
	void pullNotes();
	void saveSngAs();
	void songSliderMoved(int ms);
	void songSpacingChanged(int percent);



protected:
private:

	void prepareScene();
	void prepareAudio(QString sngpath, QString songfilename);

	Q3ListView* _dataTreeView;
	ParamWidget* _paramTab;
	SceneXmlParser* _data;
	sngParser* _songparser;
	ChartParser* _chartParser; 

	//configcontrol* _controlwin;
	ControlsConfig* _controlwin;


	static uRockerWindow* _instance;
	uRockerWindow();
	float _initialNoteScale;
	
};